package com.example.smartcity.logic.net_work

import com.example.smartcity.logic.model.*
import okhttp3.Request
import okhttp3.RequestBody
import retrofit2.Call
import retrofit2.http.Body
import retrofit2.http.GET
import retrofit2.http.Header
import retrofit2.http.Headers
import retrofit2.http.POST
import retrofit2.http.PUT
import retrofit2.http.Path
import retrofit2.http.Query
import retrofit2.http.QueryMap

/**
 * 服务器接口
 */
interface ServiceApi {

    /**
     * 登录请求
     */
    @POST("/prod-api/api/login")
    fun getLogin(@Body body: RequestBody) : Call<Login>

    /**
     * 获取用户信息
     */
    @GET("/prod-api/api/common/user/getInfo")
    fun getLoginAll(@Header("Authorization") token: String) : Call<LoginAll>


    /**
     * 用户注册
     */
    @POST("/prod-api/api/register")
    fun getRegister(@Body body: RequestBody) : Call<Register>


    /**
     * 修改用户信息
     */
    @PUT("/prod-api/api/common/user")
    fun getModification(@Header("Authorization") token: String, @Body body: RequestBody) : Call<Modification>


    /**
     * 修改密码
     */
    @PUT("/prod-api/api/common/user/resetPwd")
    fun getLoginPwd(@Header("Authorization") token: String, @Body body: RequestBody) : Call<LoginPwd>


    /**
     * 反馈内容
     */
    @POST("/prod-api/api/common/feedback")
    fun getFeedBack(@Header("Authorization") token: String,@Body body: RequestBody) : Call<FeedBack>


    /**
     * 查询反馈列表
     */
    @GET("/prod-api/api/common/feedback/list")
    fun getFeedBackAll(@Header("Authorization") token: String) : Call<FeedBackAll>


    /**
     * 获取主页轮播图
     */
    @GET("/prod-api/api/rotation/list")
    fun getSlideshow(@QueryMap map: Map<String, Int>) : Call<Slideshow>


    /**
     * 获取推荐热门服务
     */
    @GET("/prod-api/api/service/list")
    fun getMore(@Query("isRecommend") Is: String) : Call<More>


    /**
     * 获取热门主题
     */
    @GET("/prod-api/press/press/list")
    fun getNewSEntity(@Query("hot") query: String) : Call<NewSEntity>

    /**
     * 获取热门主题
     */
    @GET("/prod-api/press/press/list")
    fun getNewSEntityType(@Query("type") query: Int) : Call<NewSEntity>


    /**
     * 获取全部新闻
     */
    @GET("/prod-api/press/press/list")
    fun getNewSEntityAll() : Call<NewSEntity>

    /**
     * 新闻专栏
     */
    @GET("/prod-api/press/category/list")
    fun getNewsTitle() : Call<NewSTitleEntity>

    /**
     * 获取新闻评论列表
     */
    @GET("/prod-api/press/comments/list")
    fun getComments() : Call<Comments>

    /**
     * 获取新闻详细内容
     */
    @GET("/prod-api/press/comments/{id}")
    fun getCommentAll(@Path("id") id: Int) : Call<CommentAll>

    /**
     * 发表新闻评论
     */
    @POST("/prod-api/press/pressComment")
    fun setComment(@Header("Authorization") token: String, @Body body: RequestBody) : Call<setCommnet>
}